guint32 time)
{
GdkSurface *native = gdk_wayland_device_get_focus (device);
- GdkSurface *focus = gdk_surface_get_toplevel (window);
+ GdkSurface *focus = window;
if (focus != native)
device_emit_grab_crossing (device, focus, window, GDK_CROSSING_GRAB, time);
GdkSurface *native;
GList *l;
- native = gdk_surface_get_toplevel (surface);
+ native = surface;
if (native == NULL || GDK_SURFACE_DESTROYED (native))
return GDK_GRAB_NOT_VIEWABLE;
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_surface_get_display (surface));
guint32 scale;
GSList *l;
- GList *children, *c;
if (display_wayland->compositor_version < WL_SURFACE_HAS_BUFFER_SCALE)
{
/* Notify app that scale changed */
gdk_wayland_surface_maybe_configure (surface, surface->width, surface->height, scale);
-
- children = gdk_surface_get_children (surface);
- for (c = children; c; c = c->next)
- {
- GdkSurface *child = c->data;
- gdk_wayland_surface_update_scale (child);
- }
- g_list_free (children);
}
static void gdk_wayland_surface_create_surface (GdkSurface *surface);
GdkSurfaceImplWayland *impl = GDK_SURFACE_IMPL_WAYLAND (surface->impl);
GdkSurface *parent = impl->transient_for;
- while (parent)
- {
- GdkSurface *effective_parent = gdk_surface_get_parent (parent);
-
- if (gdk_surface_has_native (parent) && !effective_parent)
- break;
-
- *x += parent->x;
- *y += parent->y;
-
- parent = effective_parent;
- }
-
return parent;
}
}
if (transient_for)
- transient_for = get_popup_parent (gdk_surface_get_toplevel (transient_for));
+ transient_for = get_popup_parent (transient_for);
/* If the position was not explicitly set, start the popup at the
* position of the device that holds the grab.
}
else
{
- transient_for = gdk_surface_get_toplevel (impl->transient_for);
+ transient_for = impl->transient_for;
transient_for = get_popup_parent (transient_for);
}